home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / fixptlib / create_fp_windows.c next >
Encoding:
C/C++ Source or Header  |  1990-01-22  |  10.6 KB  |  244 lines

  1. /*
  2. ### create windows for computing periodic orbits ###
  3. */
  4.  
  5. #include <suntool/sunview.h>
  6. #include <suntool/panel.h>
  7. void create_fp_windows()
  8. {
  9.         int ipanel_row=0;
  10.     extern short fp_panel_show;
  11.     extern int panel_colormap_on;
  12.         extern int n_stored_fp,ir,fp_go_option,fp_display_option,fp_algorithm;
  13.         extern int n_mc,sqzex_maxsq,fi_maxsq,mu,ms,muf,msf,iskip;
  14.         extern double gp_delm,mc_eps,sqzex_eps,sqzex_epsf,sqzex_epsm;
  15.         extern double fi_eps,fi_epsf,fi_epsm;
  16.         void fp_quit_proc(),fp_go_proc(),fp_manifold_proc(),fp_2manifold_proc(),fp_clear_proc(),fp_show_proc(),fp_go_option_proc(),fp_display_option_proc(),fp_algorithm_proc();
  17.         extern char string[];
  18.         extern Pixfont *boldfont;
  19.         extern Frame frame,fp_frame;
  20.         extern Panel fp_panel;
  21.         extern Panel_item fp_quit_item,fp_go_item,fp_clear_item,fp_manifold_item,fp_show_item;
  22.         extern Panel_item fp_go_option_item,fp_display_option_item,fp_algorithm_item;
  23.         extern Panel_item fp_n_stored_fp_item,fp_ir_item;
  24.         extern Panel_item fp_sqzex_maxsq_item,fp_sqzex_eps_item,fp_sqzex_epsf_item,fp_sqzex_epsm_item,fp_mc_eps_item,fp_n_mc_item;
  25.         extern Panel_item fp_mu_item,fp_ms_item,fp_muf_item,fp_msf_item,fp_iskip_item,fp_gp_delm_item;
  26.         extern Panel_item fp_fi_eps_item,fp_fi_epsf_item,fp_fi_epsm_item,fp_fi_maxsq_item;
  27.     extern Panel_item fp_2manifold_item;
  28.  
  29.     if(fp_panel_show){
  30.         window_set(fp_frame,WIN_SHOW,TRUE,0);
  31.         return;
  32.     }
  33.     else
  34.         fp_panel_show = 1;
  35.         
  36.         fp_frame = window_create(frame,FRAME,FRAME_LABEL,"periodic orbit",
  37.                 FRAME_SHOW_LABEL,       TRUE,
  38.                 FRAME_NO_CONFIRM,       TRUE,
  39.                 WIN_SHOW,       TRUE,
  40.                 WIN_X, 400,
  41.                 WIN_Y, 0,
  42.                 WIN_FONT,       boldfont,
  43.                 0);
  44.     if(fp_frame == NULL) {
  45.         system_mess_proc(1,"No more windows. Clean up some windows to make room.");
  46.         fp_panel_show = 0;
  47.         return;
  48.     }
  49.         fp_panel = window_create(fp_frame, PANEL,
  50.                 WIN_FONT,       boldfont,
  51.                 0);
  52.     if(fp_panel == NULL) {
  53.         system_mess_proc(1,"No more windows. Clean up some windows to make room.");
  54.         (void) destroy_fp_windows();
  55.         return;
  56.     }
  57.         fp_quit_item= panel_create_item(fp_panel,PANEL_BUTTON,
  58.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  59.                 PANEL_LABEL_X,  ATTR_COL(0),
  60.                 PANEL_LABEL_IMAGE,panel_button_image(fp_panel,"Quit",0,boldfont),
  61.                 PANEL_NOTIFY_PROC,fp_quit_proc,
  62.                 0);
  63.         fp_go_item= panel_create_item(fp_panel,PANEL_BUTTON,
  64.                 PANEL_LABEL_IMAGE,panel_button_image(fp_panel,"Go",0,boldfont),                PANEL_NOTIFY_PROC,fp_go_proc,
  65.                 0);
  66.         fp_manifold_item= panel_create_item(fp_panel,PANEL_BUTTON,
  67.                 PANEL_LABEL_IMAGE,panel_button_image(fp_panel,"Add 1D Man",0,boldfont),
  68.                 PANEL_NOTIFY_PROC,fp_manifold_proc,
  69.                 0);
  70.         fp_2manifold_item= panel_create_item(fp_panel,PANEL_BUTTON,
  71.                 PANEL_LABEL_IMAGE,panel_button_image(fp_panel,"Add 2D Man",0,boldfont),
  72.                 PANEL_NOTIFY_PROC,fp_2manifold_proc,
  73.                 0);
  74.         fp_clear_item= panel_create_item(fp_panel,PANEL_BUTTON,
  75.                 PANEL_LABEL_IMAGE,panel_button_image(fp_panel,"Clear",0,boldfont),
  76.                 PANEL_NOTIFY_PROC,fp_clear_proc,
  77.                 0);
  78.         fp_show_item= panel_create_item(fp_panel,PANEL_BUTTON,
  79.                 PANEL_LABEL_IMAGE,panel_button_image(fp_panel,"Show-Hide",0,boldfont),
  80.                 PANEL_NOTIFY_PROC, fp_show_proc,
  81.                 0);
  82.         fp_display_option_item= panel_create_item(fp_panel,PANEL_CYCLE,
  83.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  84.                 PANEL_LABEL_X,  ATTR_COL(0),
  85.                 PANEL_DISPLAY_LEVEL,    PANEL_CURRENT,
  86.                 PANEL_LABEL_STRING,     "Display Option:",
  87.                 PANEL_CHOICE_STRINGS, "One copy","All copies",0,
  88.                 PANEL_VALUE, fp_display_option,
  89.                 PANEL_NOTIFY_PROC, fp_display_option_proc,
  90.                 0);
  91.         fp_go_option_item= panel_create_item(fp_panel,PANEL_CYCLE,
  92.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  93.                 PANEL_LABEL_X,  ATTR_COL(0),
  94.                 PANEL_LABEL_STRING,     "Go Option:",
  95.                 PANEL_CHOICE_STRINGS, "Mouse","Monte Carlo",0,
  96.                 PANEL_VALUE, fp_go_option,
  97.                 PANEL_NOTIFY_PROC, fp_go_option_proc,
  98.                 0);
  99.         fp_algorithm_item= panel_create_item(fp_panel,PANEL_CYCLE,
  100.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  101.                 PANEL_LABEL_X,  ATTR_COL(0),
  102.                 PANEL_DISPLAY_LEVEL,    PANEL_CURRENT,
  103.                 PANEL_LABEL_STRING,     "Algorithm:",
  104.                 PANEL_CHOICE_STRINGS, "Newton's Method","Secant Method", 0,
  105.                 PANEL_VALUE, fp_algorithm,
  106.                 PANEL_NOTIFY_PROC, fp_algorithm_proc,
  107.                 0);
  108.         sprintf(string,"%d",n_stored_fp);
  109.         fp_n_stored_fp_item= panel_create_item(fp_panel,PANEL_TEXT,
  110.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  111.                 PANEL_LABEL_X,  ATTR_COL(0),
  112.                 PANEL_VALUE,    string,
  113.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  114.                 PANEL_LABEL_STRING, "# Found:",
  115.                 0);
  116.         sprintf(string,"%d",ir);
  117.         fp_ir_item= panel_create_item(fp_panel,PANEL_TEXT,
  118.                 PANEL_LABEL_X,  ATTR_COL(23),
  119.                 PANEL_VALUE,    string,
  120.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  121.                 PANEL_LABEL_STRING, "Period:",
  122.                 0);
  123.         sprintf(string,"%d",n_mc);
  124.         fp_n_mc_item= panel_create_item(fp_panel,PANEL_TEXT,
  125.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  126.                 PANEL_LABEL_X,  ATTR_COL(0),
  127.                 PANEL_VALUE,    string,
  128.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  129.                 PANEL_LABEL_STRING, "# MC:",
  130.                 0);
  131.         sprintf(string,"%lg",mc_eps);
  132.         fp_mc_eps_item= panel_create_item(fp_panel,PANEL_TEXT,
  133.                 PANEL_LABEL_X,  ATTR_COL(20),
  134.                 PANEL_VALUE,    string,
  135.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  136.                 PANEL_LABEL_STRING, "MC tolx:",
  137.                 0);
  138.         sprintf(string,"%lg",gp_delm);
  139.         fp_gp_delm_item= panel_create_item(fp_panel,PANEL_TEXT,
  140.                 PANEL_LABEL_X,  ATTR_COL(37),
  141.                 PANEL_VALUE,    string,
  142.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  143.                 PANEL_LABEL_STRING, "Del Man:",
  144.                 0);
  145.         sprintf(string,"%d",iskip);
  146.         fp_iskip_item= panel_create_item(fp_panel,PANEL_TEXT,
  147.                 PANEL_LABEL_X,  ATTR_COL(54),
  148.                 PANEL_VALUE,    string,
  149.                 PANEL_VALUE_DISPLAY_LENGTH, 4,
  150.                 PANEL_LABEL_STRING, "# Skip:",
  151.                 0);
  152.         sprintf(string,"%d",mu);
  153.         fp_mu_item= panel_create_item(fp_panel,PANEL_TEXT,
  154.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  155.                 PANEL_LABEL_X,  ATTR_COL(0),
  156.                 PANEL_VALUE,    string,
  157.                 PANEL_VALUE_DISPLAY_LENGTH, 6,
  158.                 PANEL_LABEL_STRING, "U Max:",
  159.                 0);
  160.         sprintf(string,"%d",muf);
  161.         fp_muf_item= panel_create_item(fp_panel,PANEL_TEXT,
  162.                 PANEL_LABEL_X,  ATTR_COL(20),
  163.                 PANEL_VALUE,    string,
  164.                 PANEL_VALUE_DISPLAY_LENGTH, 6,
  165.                 PANEL_LABEL_STRING, "U Div:",
  166.                 0);
  167.         sprintf(string,"%d",ms);
  168.         fp_ms_item= panel_create_item(fp_panel,PANEL_TEXT,
  169.                 PANEL_LABEL_X,  ATTR_COL(37),
  170.                 PANEL_VALUE,    string,
  171.                 PANEL_VALUE_DISPLAY_LENGTH, 6,
  172.                 PANEL_LABEL_STRING, "S Max:",
  173.                 0);
  174.         sprintf(string,"%d",msf);
  175.         fp_msf_item= panel_create_item(fp_panel,PANEL_TEXT,
  176.                 PANEL_LABEL_X,  ATTR_COL(54),
  177.                 PANEL_VALUE,    string,
  178.                 PANEL_VALUE_DISPLAY_LENGTH, 6,
  179.                 PANEL_LABEL_STRING, "S Div:",
  180.                 0);
  181.         sprintf(string,"%d",sqzex_maxsq);
  182.         fp_sqzex_maxsq_item= panel_create_item(fp_panel,PANEL_TEXT,
  183.                 PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  184.                 PANEL_LABEL_X,  ATTR_COL(0),
  185.                 PANEL_VALUE,    string,
  186.                 PANEL_VALUE_DISPLAY_LENGTH, 6,
  187.                 PANEL_LABEL_STRING, "SqzeX-maxsq:",
  188.                 0);
  189.         sprintf(string,"%lg",sqzex_eps);
  190.         fp_sqzex_eps_item= panel_create_item(fp_panel,PANEL_TEXT,
  191.                 PANEL_LABEL_X,  ATTR_COL(20),
  192.                 PANEL_VALUE,    string,
  193.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  194.                 PANEL_LABEL_STRING, "epsx:",
  195.                 0);
  196.         sprintf(string,"%lg",sqzex_epsf);
  197.         fp_sqzex_epsf_item= panel_create_item(fp_panel,PANEL_TEXT,
  198.                 PANEL_LABEL_X,  ATTR_COL(37),
  199.                 PANEL_VALUE,    string,
  200.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  201.                 PANEL_LABEL_STRING, "epsf:",
  202.                 0);
  203.         sprintf(string,"%lg",sqzex_epsm);
  204.         fp_sqzex_epsm_item= panel_create_item(fp_panel,PANEL_TEXT,
  205.                 PANEL_LABEL_X,  ATTR_COL(54),
  206.                 PANEL_VALUE,    string,
  207.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  208.                 PANEL_LABEL_STRING, "epsm:",
  209.                 0);
  210.         sprintf(string,"%d",fi_maxsq);
  211.         fp_fi_maxsq_item= panel_create_item(fp_panel,PANEL_TEXT,
  212.                                PANEL_LABEL_Y,  ATTR_ROW(ipanel_row++),
  213.                 PANEL_LABEL_X,  ATTR_COL(0),
  214.                 PANEL_VALUE,    string,
  215.                 PANEL_VALUE_DISPLAY_LENGTH, 6,
  216.                 PANEL_LABEL_STRING, "Fi-maxsq:",
  217.                 0);
  218.         sprintf(string,"%lg",fi_eps);
  219.         fp_fi_eps_item= panel_create_item(fp_panel,PANEL_TEXT,
  220.                 PANEL_LABEL_X,  ATTR_COL(20),
  221.                 PANEL_VALUE,    string,
  222.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  223.                 PANEL_LABEL_STRING, "epsx:",
  224.                 0);
  225.         sprintf(string,"%lg",fi_epsf);
  226.         fp_fi_epsf_item= panel_create_item(fp_panel,PANEL_TEXT,
  227.                 PANEL_LABEL_X,  ATTR_COL(37),
  228.                 PANEL_VALUE,    string,
  229.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  230.                 PANEL_LABEL_STRING, "epsf:",
  231.                 0);
  232.         sprintf(string,"%lg",fi_epsm);
  233.         fp_fi_epsm_item= panel_create_item(fp_panel,PANEL_TEXT,
  234.                 PANEL_LABEL_X,  ATTR_COL(54),
  235.                 PANEL_VALUE,    string,
  236.                 PANEL_VALUE_DISPLAY_LENGTH, 7,
  237.                 PANEL_LABEL_STRING, "epsm:",
  238.                 0);
  239.         window_fit(fp_panel);
  240.         window_fit(fp_frame);
  241.     if(panel_colormap_on)
  242.         init_panel_colormap((Pixwin *) window_get(fp_panel,WIN_PIXWIN),"fp_panel_cms");
  243. }       
  244.